#!/bin/bash

#-----------------------------------------------
#避免脚本重复运行
#set -o noclobber; echo "$$" > "$LOCK_NAME"
#  开启不可重复写，将本进程的pid写道文件中
#2>/dev/null
#  错误输出流重定向到黑洞中
# INT: 对应ctrl+c操作，中断
# TERM: 终止
#-----------------------------------------------

LOCK_NAME="/root/weave/my.lock"
if ( set -o noclobber; echo "$$" > "$LOCK_NAME" ) 2>/dev/null;
then
  # 如果出现这三个信号中的任何一个，删除锁文件(进行释放锁的操作)
  trap 'rm -f "$LOCK_NAME";exit $?' INT TERM EXIT

  #流程开始
  echo "这里可以写自己的正常流程"
  #流程结束

  rm -f $LOCK_LOCK_NAME
  # 恢复原有信号的操作
  trap - INT TERM EXIT
else
  echo "Failed to acquire lockfile: $LOCK_NAME."
  echo "Held by $(cat $LOCK_NAME)"
  exit 1
fi